A multi Wide Area Network (WAN) communications device is able to transmit data packets using one or more of its WAN interfaces. The communications device also supports aggregating the bandwidth of multiple WAN interfaces. The communications device also supports end-to-end connections, such as virtual private network (VPN) connection and session based site-to-site (VPN) connection and tunneling. In some implementations, each TCP/IP session is routed to only one WAN. In this configuration, a single TCP file transfer session may only utilize the bandwidth of one WAN connection on each end. For example, in a session based site-to-site virtual private network (VPN) connection, VPN traffic is routed to multiple WAN connections between two sites (e.g., sites A and B).
In one implementation, M×N tunnels are initially formed between the WAN connections where M and N are the number of WAN network connections of site A and site B, respectively. Application TCP/IP sessions are then routed over the different tunnels. It is notable, however, that while a session based site-to-site VPN is able to utilize different tunnels for different sessions, a single download session in this type of connection is only able to utilize one tunnel.
When a communications device transmits data packets, the communications device needs to select the most suitable WAN network interface, access connection, logical connection or end-to-end connection to transmit data packets. However, it takes time to identify which of the WAN network interfaces, access connection, logical connections or end-to-end connections is the most suitable. The most suitable WAN network interface, access connection, logical connection or end-to-end connection to transmit data packets should be the one that may transmit data packets the quickest or according to a set of performance criteria. Furthermore, when a communications device establishes a plurality of end-to-end connections belonging to an aggregated end-to-end connection, it is important to choose the end-to-end connections with best performance to transmit data packets, so that the overall performance of the aggregate end-to-end connection is satisfactory, and is not affected negatively by transmitting data packets through established end-to-end connections that have poor performance.
However, it is well known that performance of end-to-end connections may vary from time to time. Therefore, it is desirable that the performance of the end-to-end connections is re-determined periodically in order to check which end-to-end connection(s) have the best performance at a given time. It is also important that the performance of the established end-to-end connections is re-determined using data packets containing same information so that a fair comparison may be made between the established end-to-end connections based on their performances.